蓝牙调试器app HC05、HC06(功能非常强大) | 您所在的位置:网站首页 › 蓝牙 遥控器 app › 蓝牙调试器app HC05、HC06(功能非常强大) |
可以在百度搜索蓝牙调试器可下载。 下面介绍怎么使用以及接收代码 分为两种模式:基础模式和专业模式 基础模式基础模式非常的简单,设置相应的按键的值就可以显现发送数据,例如用按键控制灯的亮灭。具体设置1、点击编辑模式就可以编辑相应的按键值。2、点击按键弹出修改界面,在里面可以设置按键的名称、按下时发送的数据、松开时发送的数据和发送时的编码模式。 专业模式可以自己编辑器件,例如摇杆、按键、能量条、波形图等。该模式可以编辑器件可玩性和可操作性能强。1、点击+图标可新建项目。2、编辑器件可以根据需要添加器件。3、通信设置设置可编辑发送数据的长度和类型。 器件编辑:进入器件编辑,最上方的标志分别是添加器件、链接器件和设置发送的值或范围(一定要链接要不然无法发送数据或者接收数据)、删除器件、退出。最右边的标志从上到下依次是移动器件、缩放器件图标大小和调节器件角度。 通信设置(必须设置):通过设置发送或者接收数据的类型和数量(上面会显示相应的数据包的长度下图中数据包为12字节对应的单片机发送或者接收的字节都为12个字节)设置完后就可用在编辑器件中链接变量。 重点:该软件有一个简单的协议,数据包主要包括四部分:包头、原数据、校验和包尾,其中包头一定要是0XA5,包尾一定要是0X5A。 下面是我自己写的基于stm32f103的接收代码: 串口初始化代码 void uart_init(u32 bound){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //USART1_TX GPIOA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); //USART1_RX GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure);//³õʼ»¯GPIOA10 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1 ; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); USART_InitStructure.USART_BaudRate = bound; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); USART_Cmd(USART1, ENABLE); }发送和解析函数 #define E_START 0 //准备成功 #define E_OK 1 //成功 #define E_FRAME_HEADER_ERROR 2 //包头错误 #define E_FRAME_RTAIL_ERROR 3 //包尾错误 #define LINE_LIN 12 //数据长度 uint8_t uart_flag; //接收标志 vu8 RX_lanya[12]; /*接收数据*/ void get_slave_data(uint8_t data) { static uint8_t uart_num=0; RX_lanya[uart_num++]=data; if(1==uart_num) { //接收到第一个字节不是0xA5,包头错误 if(0XA5!=RX_lanya[0]) { uart_num=0; uart_flag=E_FRAME_HEADER_ERROR; } } if(LINE_LIN==uart_num) { uart_flag=E_OK; //接收到最后一个字节是0X5A if(0X5A==RX_lanya[LINE_LIN-1]) { uart_flag=E_OK; } else //接收到的最后一个字节不为ox5A,包尾错误 { uart_flag=E_FRAME_RTAIL_ERROR; } uart_num=0; } } int key1=0,key2=0,key3=0,key4=0,key5=0; /*解析数据*/ void lanya_receive(void) { key1=RX_lanya[1]; key2=((int)RX_lanya[3] |
CopyRight 2018-2019 实验室设备网 版权所有 |